home *** CD-ROM | disk | FTP | other *** search
/ PC Gamer (Italian) 41 / PC Gamer IT CD 41 2-2.iso / DRIVERS / VIDEODRV / MATROX / nt_drivers / NT_351 / 1597_237.EXE / OEMSETUP.INF < prev    next >
INI File  |  1998-08-11  |  29KB  |  741 lines

  1. ;-----------------------------------------------------------------------
  2. ; OPTION TYPE
  3. ; -----------
  4. ; This identifies the Option type we are dealing with.  The different
  5. ; possible types are:
  6. ;
  7. ; COMPUTER, VIDEO, MOUSE, KEYBOARD, LAYOUT, SCSI, PRINTER, ...
  8. ;-----------------------------------------------------------------------
  9.  
  10. [Identification]
  11.     OptionType = VIDEO
  12.  
  13. ;-----------------------------------------------------------------------
  14. ; LANGUAGES SUPPORTED
  15. ; -------------------
  16. ;
  17. ; The languages supported by the OEM INF, For every language supported
  18. ; we need to have a separate text section for every displayable text
  19. ; section.
  20. ;
  21. ;-----------------------------------------------------------------------
  22.  
  23. [LanguagesSupported]
  24.     ENG
  25.  
  26. ;-----------------------------------------------------------------------
  27. ; OPTION LIST
  28. ; -----------
  29. ; This section lists the OEM Option key names.  These keys are locale
  30. ; independent and used to represent the option in a locale independent
  31. ; manner.
  32. ;
  33. ;-----------------------------------------------------------------------
  34.  
  35. ;
  36. ; Option list order: Option = Miniport driver, BitsPerPel, XResolution, YResolution, VRefresh, Interlaced
  37. ;
  38. ; If you don't want to create a VRefresh or Interlaced value under the service
  39. ; parameters then use the value ""
  40. ;
  41.  
  42. [Options]
  43.     "Matrox MGA2064  640x 480x 8"  =  mgax64,  8,  640,  480, "", ""
  44.     "Matrox MGA2064  800x 600x 8"  =  mgax64,  8,  800,  600, "", ""
  45.     "Matrox MGA2064 1024x 768x 8"  =  mgax64,  8, 1024,  768, "", ""
  46.     "Matrox MGA2064 1152x 864x 8"  =  mgax64,  8, 1152,  864, "", ""
  47.     "Matrox MGA2064 1280x1024x 8"  =  mgax64,  8, 1280, 1024, "", ""
  48.     "Matrox MGA2064 1600x1200x 8"  =  mgax64,  8, 1600, 1200, "", ""
  49.     "Matrox MGA2064  640x 480x15"  =  mgax64, 15,  640,  480, "", ""
  50.     "Matrox MGA2064  800x 600x15"  =  mgax64, 15,  800,  600, "", ""
  51.     "Matrox MGA2064 1024x 768x15"  =  mgax64, 15, 1024,  768, "", ""
  52.     "Matrox MGA2064 1152x 864x15"  =  mgax64, 15, 1152,  864, "", ""
  53.     "Matrox MGA2064 1280x1024x15"  =  mgax64, 15, 1280, 1024, "", ""
  54.     "Matrox MGA2064 1600x1200x15"  =  mgax64, 15, 1600, 1200, "", ""
  55.     "Matrox MGA2064  640x 480x16"  =  mgax64, 16,  640,  480, "", ""
  56.     "Matrox MGA2064  800x 600x16"  =  mgax64, 16,  800,  600, "", ""
  57.     "Matrox MGA2064 1024x 768x16"  =  mgax64, 16, 1024,  768, "", ""
  58.     "Matrox MGA2064 1152x 864x16"  =  mgax64, 16, 1152,  864, "", ""
  59.     "Matrox MGA2064 1280x1024x16"  =  mgax64, 16, 1280, 1024, "", ""
  60.     "Matrox MGA2064 1600x1200x16"  =  mgax64, 16, 1600, 1200, "", ""
  61.     "Matrox MGA2064  640x 480x24"  =  mgax64, 24,  640,  480, "", ""
  62.     "Matrox MGA2064  800x 600x24"  =  mgax64, 24,  800,  600, "", ""
  63.     "Matrox MGA2064 1024x 768x24"  =  mgax64, 24, 1024,  768, "", ""
  64.     "Matrox MGA2064 1152x 864x24"  =  mgax64, 24, 1152,  864, "", ""
  65.     "Matrox MGA2064 1280x1024x24"  =  mgax64, 24, 1280, 1024, "", ""
  66.     "Matrox MGA2064 1600x1200x24"  =  mgax64, 24, 1600, 1200, "", ""
  67.     "Matrox MGA2064  640x 480x32"  =  mgax64, 32,  640,  480, "", ""
  68.     "Matrox MGA2064  800x 600x32"  =  mgax64, 32,  800,  600, "", ""
  69.     "Matrox MGA2064 1024x 768x32"  =  mgax64, 32, 1024,  768, "", ""
  70.     "Matrox MGA2064 1152x 864x32"  =  mgax64, 32, 1152,  864, "", ""
  71.     "Matrox MGA2064 1280x1024x32"  =  mgax64, 32, 1280, 1024, "", ""
  72.  
  73. ;
  74. ; This maps detected options into the options we support
  75. ;
  76. ; Format: DetectedOption = MappedOption
  77. ;
  78.  
  79. [MapOfOptions]
  80.     "VGA"                       = "VGA"
  81.     "COMPAQ AVGA"               = "VGA"
  82.     "COMPAQ AGB"                = "VGA"
  83.     "8514 MONITOR UNKNOWN"      = "VGA"
  84.     "8514 VGA MONITOR"          = "VGA"
  85.     "8514 8503 MONO"            = "VGA"
  86.     "8514 8514 GAD"             = "VGA"
  87.     "GENOA VGA"                 = "VGA"
  88.     "VIDEO7 VGA DRAM"           = "VIDEO7 VGA VRAM 640x480x4"
  89.     "VIDEO7 VGA VRAM"           = "VIDEO7 VGA VRAM 640x480x4"
  90.     "TRIDENT VGA"               = "VGA"
  91.     "TRIDENT VGA 9100"          = "VGA"
  92.     "PARADISE VGA"              = "VGA"
  93.     "PARADISE VGA PROM"         = "VGA"
  94.     "PARADISE VGA CHIP 1F"      = "VGA"
  95.     "ATI VGA"            = "VGA"
  96.     "ATI VGA WONDER3"        = "VGA"
  97.     "TSENGLAB VGA ET3000"       = "VGA"
  98.     "TSENGLAB VGA ET4000"       = "TSENGLAB VGA ET4000 640x480x4x60"
  99.     "CIRRUS VGA"                = "VGA"
  100.     "CIRRUS VGA 610-620 REVC"   = "VGA"
  101.     "XGA"                       = "XGA 640x480x8"
  102.     "DELL DGX"                  = "DELL DGX 640x480x8"
  103.     "S3 VGA"                    = "S3 VGA 640x480x8"
  104.     "PRODESIGNER II"            = "TSENGLAB VGA ET4000 640x480x4x60"
  105.  
  106.  
  107. ;
  108. ; Order of the information:
  109. ;
  110. ; Port driver = Type, Group, ErrorControl, Tag, InstalledDisplay, VgaCompatible( 0/1 ), EventMessageFile, TypesSupported
  111. ;
  112.  
  113. [MiniportDrivers]
  114.     mgax64   = !SERVICE_KERNEL_DRIVER, Video, !SERVICE_ERROR_NORMAL, 11, {mgax64}, 0, %SystemRoot%\System32\IoLogMsg.dll , 7
  115.  
  116.  
  117. ;-----------------------------------------------------------------------
  118. ; OPTION TEXT SECTION
  119. ; -------------------
  120. ; These are text strings used to identify the option to the user.  There
  121. ; are separate sections for each language supported.  The format of the
  122. ; section name is "OptionsText" concatenated with the Language represented
  123. ; by the section.
  124. ;
  125. ;-----------------------------------------------------------------------
  126.  
  127. [OptionsTextENG]
  128.     "Matrox MGA2064  640x 480x 8"  = "Matrox Millennium/Mystique/G100/G200  640x 480, 256 colors"
  129.     "Matrox MGA2064  800x 600x 8"  = "Matrox Millennium/Mystique/G100/G200  800x 600, 256 colors"
  130.     "Matrox MGA2064 1024x 768x 8"  = "Matrox Millennium/Mystique/G100/G200 1024x 768, 256 colors"
  131.     "Matrox MGA2064 1152x 864x 8"  = "Matrox Millennium/Mystique/G100/G200 1152x 864, 256 colors"
  132.     "Matrox MGA2064 1280x1024x 8"  = "Matrox Millennium/Mystique/G100/G200 1280x1024, 256 colors"
  133.     "Matrox MGA2064 1600x1200x 8"  = "Matrox Millennium/Mystique/G100/G200 1600x1200, 256 colors"
  134.     "Matrox MGA2064  640x 480x15"  = "Matrox Millennium/Mystique/G100/G200  640x 480, 32K colors"
  135.     "Matrox MGA2064  800x 600x15"  = "Matrox Millennium/Mystique/G100/G200  800x 600, 32K colors"
  136.     "Matrox MGA2064 1024x 768x15"  = "Matrox Millennium/Mystique/G100/G200 1024x 768, 32K colors"
  137.     "Matrox MGA2064 1152x 864x15"  = "Matrox Millennium/Mystique/G100/G200 1152x 864, 32K colors"
  138.     "Matrox MGA2064 1280x1024x15"  = "Matrox Millennium/Mystique/G100/G200 1280x1024, 32K colors (4Mb board)"
  139.     "Matrox MGA2064 1600x1200x15"  = "Matrox Millennium/Mystique/G100/G200 1600x1200, 32K colors (4Mb board)"
  140.     "Matrox MGA2064  640x 480x16"  = "Matrox Millennium/Mystique/G100/G200  640x 480, 64K colors"
  141.     "Matrox MGA2064  800x 600x16"  = "Matrox Millennium/Mystique/G100/G200  800x 600, 64K colors"
  142.     "Matrox MGA2064 1024x 768x16"  = "Matrox Millennium/Mystique/G100/G200 1024x 768, 64K colors"
  143.     "Matrox MGA2064 1152x 864x16"  = "Matrox Millennium/Mystique/G100/G200 1152x 864, 64K colors"
  144.     "Matrox MGA2064 1280x1024x16"  = "Matrox Millennium/Mystique/G100/G200 1280x1024, 64K colors (4Mb board)"
  145.     "Matrox MGA2064 1600x1200x16"  = "Matrox Millennium/Mystique/G100/G200 1600x1200, 64K colors (4Mb board)"
  146.     "Matrox MGA2064  640x 480x24"  = "Matrox Millennium/Mystique/G100/G200  640x 480, 16M colors"
  147.     "Matrox MGA2064  800x 600x24"  = "Matrox Millennium/Mystique/G100/G200  800x 600, 16M colors"
  148.     "Matrox MGA2064 1024x 768x24"  = "Matrox Millennium/Mystique/G100/G200 1024x 768, 16M colors (4Mb board)"
  149.     "Matrox MGA2064 1152x 864x24"  = "Matrox Millennium/Mystique/G100/G200 1152x 864, 16M colors (4Mb board)"
  150.     "Matrox MGA2064 1280x1024x24"  = "Matrox Millennium/Mystique/G100/G200 1280x1024, 16M colors (4Mb board)"
  151.     "Matrox MGA2064 1600x1200x24"  = "Matrox Millennium/Mystique/G100/G200 1600x1200, 16M colors (8Mb board)"
  152.     "Matrox MGA2064  640x 480x32"  = "Matrox Millennium/Mystique/G100/G200  640x 480, True Color"
  153.     "Matrox MGA2064  800x 600x32"  = "Matrox Millennium/Mystique/G100/G200  800x 600, True Color"
  154.     "Matrox MGA2064 1024x 768x32"  = "Matrox Millennium/Mystique/G100/G200 1024x 768, True Color (4Mb board)"
  155.     "Matrox MGA2064 1152x 864x32"  = "Matrox Millennium/Mystique/G100/G200 1152x 864, True Color (4Mb board)"
  156.     "Matrox MGA2064 1280x1024x32"  = "Matrox Millennium/Mystique/G100/G200 1280x1024, True Color (8Mb board)"
  157.  
  158.  
  159. ;---------------------------------------------------------------------------
  160. ; 1. Identify
  161. ;
  162. ; DESCRIPTION:   To verify that this INF deals with the same type of options
  163. ;                as we are choosing currently.
  164. ;
  165. ; INPUT:         None
  166. ;
  167. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL
  168. ;                $($R1): Option Type (COMPUTER ...)
  169. ;                $($R2): Diskette description
  170. ;---------------------------------------------------------------------------
  171.  
  172. [Identify]
  173.     ;
  174.     ;
  175.     read-syms Identification
  176.  
  177.     set Status     = STATUS_SUCCESSFUL
  178.     set Identifier = $(OptionType)
  179.     set Media      = #("Source Media Descriptions", 1, 1)
  180.  
  181.     Return $(Status) $(Identifier) $(Media)
  182.  
  183.  
  184.  
  185. ;------------------------------------------------------------------------
  186. ; 2. ReturnOptions:
  187. ;
  188. ; DESCRIPTION:   To return the option list supported by this INF and the
  189. ;                localised text list representing the options.
  190. ;
  191. ;
  192. ; INPUT:         $($0):  Language used. ( ENG | FRN | ... )
  193. ;
  194. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL |
  195. ;                                STATUS_NOLANGUAGE
  196. ;                                STATUS_FAILED
  197. ;
  198. ;                $($R1): Option List
  199. ;                $($R2): Option Text List
  200. ;------------------------------------------------------------------------
  201.  
  202. [ReturnOptions]
  203.     ;
  204.     ;
  205.     set Status        = STATUS_FAILED
  206.     set OptionList     = {}
  207.     set OptionTextList = {}
  208.  
  209.     ;
  210.     ; Check if the language requested is supported
  211.     ;
  212.     set LanguageList = ^(LanguagesSupported, 1)
  213.     Ifcontains(i) $($0) in $(LanguageList)
  214.         goto returnoptions
  215.     else
  216.         set Status = STATUS_NOLANGUAGE
  217.         goto finish_ReturnOptions
  218.     endif
  219.  
  220.     ;
  221.     ; form a list of all the options and another of the text representing
  222.     ;
  223.  
  224. returnoptions = +
  225.     set OptionList     = ^(Options, 0)
  226.     set OptionTextList = ^(OptionsText$($0), 1)
  227.     set Status         = STATUS_SUCCESSFUL
  228.  
  229. finish_ReturnOptions = +
  230.     Return $(Status) $(OptionList) $(OptionTextList)
  231.  
  232.  
  233.  
  234. ;---------------------------------------------------------------------------
  235. ; MapToSupportedOption
  236. ;
  237. ; DESCRIPTION:   To map a hardware detected option to the NT Supported
  238. ;                option which represents it.
  239. ;
  240. ; INPUT:         $($0): Option
  241. ;
  242. ; OUTPUT:        $($R0): STATUS: STATUS_SUCCESSFUL
  243. ;                $($R1): Mapped Option
  244. ;
  245. ;---------------------------------------------------------------------------
  246.  
  247. [MapToSupportedOption]
  248.     ;
  249.     set Status = STATUS_FAILED
  250.     set MappedOption = $($0)
  251.  
  252.     ;
  253.     ; If the option is one we can support using one of our standard options
  254.     ; then map it to the standard option else map it to the default option
  255.     ; which is VGA.
  256.     ;
  257.  
  258.     set OptionList = ^(MapOfOptions, 0)
  259.     ifcontains $($0) in $(OptionList)
  260.         set MappedOption = #(MapOfOptions, $($0), 1)
  261.     else
  262.         set MappedOption = "VGA"
  263.     endif
  264.  
  265.     set Status = STATUS_SUCCESSFUL
  266.     Return $(Status) $(MappedOption)
  267.  
  268.  
  269.  
  270. [ServicesEntry]
  271.     CurrentEntry = "" ? $(!LIBHANDLE) GetDevicemapValue Video \Device\Video0
  272.  
  273.  
  274. ;
  275. ; InstallOption:
  276. ;
  277. ; FUNCTION:  To copy files representing Options
  278. ;            To configure the installed option
  279. ;            To update the registry for the installed option
  280. ;
  281. ; INPUT:     $($0):  Language to use
  282. ;            $($1):  OptionID to install
  283. ;            $($2):  SourceDirectory
  284. ;            $($3):  AddCopy  (YES | NO)
  285. ;            $($4):  DoCopy   (YES | NO)
  286. ;            $($5):  DoConfig (YES | NO)
  287. ;
  288. ; OUTPUT:    $($R0): STATUS: STATUS_SUCCESSFUL |
  289. ;                            STATUS_NOLANGUAGE |
  290. ;                            STATUS_USERCANCEL |
  291. ;                            STATUS_FAILED
  292. ;
  293.  
  294. [InstallOption]
  295.  
  296.     ;
  297.     ; Set default values for
  298.     ;
  299.     set Status       = STATUS_FAILED
  300.     set DrivesToFree = {}
  301.  
  302.     ;
  303.     ; extract parameters
  304.     ;
  305.     set Option   = $($1)
  306.     set SrcDir   = $($2)
  307.     set AddCopy  = $($3)
  308.     set DoCopy   = $($4)
  309.     set DoConfig = $($5)
  310.  
  311.     ;
  312.     ; Check if the language requested is supported
  313.     ;
  314.     set LanguageList = ^(LanguagesSupported, 1)
  315.     Ifcontains(i) $($0) in $(LanguageList)
  316.     else
  317.         set Status = STATUS_NOLANGUAGE
  318.         goto finish_InstallOption
  319.     endif
  320.     read-syms Strings$($0)
  321.  
  322.     ;
  323.     ; check to see if Option is supported.
  324.     ;
  325.  
  326.     set OptionList = ^(Options, 0)
  327.     ifcontains $(Option) in $(OptionList)
  328.     else
  329.         goto finish_InstallOption
  330.     endif
  331.     set OptionList = ""
  332.  
  333.     ;
  334.     ; Option has been defined already
  335.     ;
  336.     set MiniportDriver    = #(Options, $(Option), 1)
  337.     set BitsPerPel        = #(Options, $(Option), 2)
  338.     set XResolution       = #(Options, $(Option), 3)
  339.     set YResolution       = #(Options, $(Option), 4)
  340.     set VRefresh          = #(Options, $(Option), 5)
  341.     set Interlaced        = #(Options, $(Option), 6)
  342.  
  343.     set Type              = $(#(MiniportDrivers, $(MiniportDriver), 1))
  344.     set Group             =   #(MiniportDrivers, $(MiniportDriver), 2)
  345.     set ErrorControl      = $(#(MiniportDrivers, $(MiniportDriver), 3))
  346.     set Tag               =   #(MiniportDrivers, $(MiniportDriver), 4)
  347.     set InstalledDisplays =   #(MiniportDrivers, $(MiniportDriver), 5)
  348.     set VgaCompatible     =   #(MiniportDrivers, $(MiniportDriver), 6)
  349.     set EventMessageFile  =   #(MiniportDrivers, $(MiniportDriver), 7)
  350.     set TypesSupported    =   #(MiniportDrivers, $(MiniportDriver), 8)
  351.  
  352.     read-syms ServicesEntry
  353.     detect    ServicesEntry
  354.  
  355. installtheoption = +
  356.  
  357.     ;
  358.     ; Code to add files to copy list
  359.     ;
  360.  
  361.     ifstr(i) $(AddCopy) == "YES"
  362.         set DoActualCopy = NO
  363.         set FileToCheck = #(Files-DisplayMiniportDrivers, $(MiniportDriver), 2)
  364.         LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\drivers\"$(FileToCheck)
  365.         ifstr(i) $(STATUS) == NO
  366.             set DoActualCopy = YES
  367.             goto addfiles
  368.         endif
  369.         ForListDo $(InstalledDisplays)
  370.             set FileToCheck = #(Files-DisplayDLLs, $($), 2)
  371.             LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\"$(FileToCheck)
  372.             ifstr(i) $(STATUS) == NO
  373.                 set DoActualCopy = YES
  374.             endif
  375.         EndForListDo
  376.  
  377. addfiles = +
  378.         ifstr(i) $(DoActualCopy) == NO
  379.             shell "subroutn.inf" DriversExist $($0) $(String1)
  380.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  381.                 Debug-Output "VIDEO.INF: shelling DriversExist failed"
  382.                 goto finish_InstallOption
  383.             endif
  384.  
  385.             ifstr(i) $($R0) == STATUS_CURRENT
  386.             else-ifstr(i) $($R0) == STATUS_NEW
  387.                 set DoActualCopy = YES
  388.             else-ifstr(i) $($R0) == STATUS_USERCANCEL
  389.                 Debug-Output "VIDEO.INF: User cancelled video installation"
  390.                 goto finish_InstallOption
  391.             else
  392.                 Debug-Output "VIDEO.INF: Error reported in DriversExist routine in SUBROUTN.INF"
  393.                 goto finish_InstallOption
  394.             endif
  395.         endif
  396.  
  397.         ifstr(i) $(DoActualCopy) == YES
  398.  
  399.             shell "subroutn.inf" DoAskSourceEx $(SrcDir) $(String2)
  400.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  401.                 Debug-Output "VIDEO.INF: shelling DoAskSourceEx failed"
  402.                 goto finish_InstallOption
  403.             endif
  404.  
  405.             ifstr(i) $($R0) == STATUS_SUCCESSFUL
  406.                 set SrcDir = $($R1)
  407.                 ifstr(i) $($R2) != ""
  408.                     set DrivesToFree = >($(DrivesToFree), $($R2))
  409.                 endif
  410.             else
  411.                 Debug-Output "VIDEO.INF: User cancelled asking source."
  412.                 goto finish_InstallOption
  413.             endif
  414.  
  415.             install Install-AddCopyOption
  416.             ifstr(i) $(STF_INSTALL_OUTCOME) != "STF_SUCCESS"
  417.                 Debug-Output "VIDEO.INF: Adding video files to copy list failed"
  418.                 goto finish_InstallOption
  419.             endif
  420.         else
  421.             set DoCopy = NO
  422.         endif
  423.  
  424.     endif
  425.  
  426.     ifstr(i) $(DoCopy) == "YES"
  427.         read-syms ProgressCopy$($0)
  428.         install Install-DoCopyOption
  429.         ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_FAILURE"
  430.             Debug-Output "Copying files failed"
  431.             goto finish_InstallOption
  432.         else-ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_USERQUIT"
  433.             set Status = STATUS_USERCANCEL
  434.             goto finish_InstallOption
  435.         endif
  436.     endif
  437.  
  438.     ifstr(i) $(DoConfig) == "YES"
  439.  
  440.         ;
  441.         ; first run a privilege check on modifying the setup node
  442.         ;
  443.  
  444.         shell "registry.inf" CheckSetupModify
  445.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  446.             goto finish_InstallOption
  447.         endif
  448.  
  449.         ifstr(i) $($R0) != STATUS_SUCCESSFUL
  450.             goto finish_InstallOption
  451.         endif
  452.  
  453.         ;
  454.         ; first make a new video entry, the entry is created automatically
  455.         ; enabled
  456.         ;
  457.  
  458.         set ServiceNode   = $(MiniportDriver)
  459.         set ServiceBinary = %SystemRoot%\System32\drivers\#(Files-DisplayMiniportDrivers, $(MiniportDriver), 2)
  460.  
  461.         set ServicesValues   = { +
  462.                 {Type,           0, $(!REG_VT_DWORD),     $(Type)                  }, +
  463.                 {Start,          0, $(!REG_VT_DWORD),     $(!SERVICE_SYSTEM_START) }, +
  464.                 {Group,          0, $(!REG_VT_SZ),        $(Group)                 }, +
  465.                 {ErrorControl,   0, $(!REG_VT_DWORD),     $(ErrorControl)          }, +
  466.                 {Tag,            0, $(!REG_VT_DWORD),     $(Tag)                   }, +
  467.                 {BinaryPathName, 0, $(!REG_VT_EXPAND_SZ), $(ServiceBinary)         }  +
  468.                 }
  469.  
  470.         set DeviceDescription     = "Matrox Millennium/Mystique/G100/G200"
  471.         set UserAlternateLines    = "0"
  472.         set UserCenterDialogs     = "0"
  473.         set UserComplexBlt        = "1"
  474.         set UserDeviceBitmaps     = "1"
  475.         set UserLanguageList      = {"English","MGA_ENG","Dansk","MGA_DAN","Nederlands","MGA_DUT","Norsk","MGA_NOR","PortuguΩs","MGA_POR","Suomi","MGA_FIN","Svenska","MGA_SWE"}
  476.         set UserLanguageOption    = "English"
  477.         set UserMgaInfoFile       = "1"
  478.         set UserMgaInfoFileName   = "\SystemRoot\System32\mga.inf"
  479.         set UserMgaPanelLastPage  = "0"
  480.         set UserSynchronizeDac    = "0"
  481.         set UserSynchronizeEngine = "0"
  482.         set User3dDoubleBuffer    = "1"
  483.         set User3dSubPixel        = "1"
  484.         set User3dZBuffer         = "1"
  485.         set ParametersValues = { +
  486.                 {"Device Description",        0, $(!REG_VT_SZ),       $(DeviceDescription)    }, +
  487.                 {InstalledDisplayDrivers,     0, $(!REG_VT_MULTI_SZ), $(InstalledDisplays)    }, +
  488.                 {VgaCompatible,               0, $(!REG_VT_DWORD),    $(VgaCompatible)        }, +
  489.                 {DefaultSettings.BitsPerPel,  0, $(!REG_VT_DWORD),    $(BitsPerPel)           }, +
  490.                 {DefaultSettings.XResolution, 0, $(!REG_VT_DWORD),    $(XResolution)          }, +
  491.                 {DefaultSettings.YResolution, 0, $(!REG_VT_DWORD),    $(YResolution)          }, +
  492.                 {"User.AlternateLines",       0, $(!REG_VT_DWORD),    $(UserAlternateLines)   }, +
  493.                 {"User.CenterDialogs",        0, $(!REG_VT_DWORD),    $(UserCenterDialogs)    }, +
  494.                 {"User.ComplexBlt",           0, $(!REG_VT_DWORD),    $(UserComplexBlt)       }, +
  495.                 {"User.DeviceBitmaps",        0, $(!REG_VT_DWORD),    $(UserDeviceBitmaps)    }, +
  496.                 {"User.LanguageList",         0, $(!REG_VT_MULTI_SZ), $(UserLanguageList)     }, +
  497.                 {"User.LanguageOption",       0, $(!REG_VT_SZ),       $(UserLanguageOption)   }, +
  498.                 {"User.MgaInfoFile",          0, $(!REG_VT_DWORD),    $(UserMgaInfoFile)      }, +
  499.                 {"User.MgaInfoFileName",      0, $(!REG_VT_EXPAND_SZ),$(UserMgaInfoFileName)  }, +
  500.                 {"User.MgaPanelLastPage",     0, $(!REG_VT_DWORD),    $(UserMgaPanelLastPage) }, +
  501.                 {"User.SynchronizeDac",       0, $(!REG_VT_DWORD),    $(UserSynchronizeDac)   }, +
  502.                 {"User.SynchronizeEngine",    0, $(!REG_VT_DWORD),    $(UserSynchronizeEngine)}, +
  503.                 {"User3d.DoubleBuffer",       0, $(!REG_VT_DWORD),    $(User3dDoubleBuffer)   }, +
  504.                 {"User3d.SubPixel",           0, $(!REG_VT_DWORD),    $(User3dSubPixel)       }, +
  505.                 {"User3d.ZBuffer",            0, $(!REG_VT_DWORD),    $(User3dZBuffer)        }  +
  506.                 }
  507.  
  508.         ifstr(i) $(VRefresh) != ""
  509.             set VRefreshValue = {DefaultSettings.VRefresh, 0, $(!REG_VT_DWORD), $(VRefresh)}
  510.             set ParametersValue = >($(ParametersValue), $(VRefreshValue))
  511.         endif
  512.  
  513.         ifstr(i) $(Interlaced) != ""
  514.             set InterlacedValue = {DefaultSettings.Interlaced, 0, $(!REG_VT_DWORD), $(Interlaced)}
  515.             set ParametersValue = >($(ParametersValue), $(InterlacedValue))
  516.         endif
  517.  
  518.         set DeviceValues     = {}
  519.         set EventLogValues   = { +
  520.                 {EventMessageFile, 0, $(!REG_VT_EXPAND_SZ), $(EventMessageFile) }, +
  521.                 {TypesSupported,   0, $(!REG_VT_DWORD),     $(TypesSupported)   }  +
  522.                 }
  523.  
  524.         shell "registry.inf"  MakeServicesEntry $(ServiceNode)      +
  525.                                                 $(ServicesValues)   +
  526.                                                 $(ParametersValues) +
  527.                                                 $(DeviceValues)     +
  528.                                                 $(EventLogValues)   +
  529.                                                 Device0
  530.  
  531.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  532.             Debug-Output "Couldn't execute MakeServicesEntry in registry.inf"
  533.             goto finish_InstallOption
  534.         endif
  535.  
  536.         ifstr(i) $($R0) != STATUS_SUCCESSFUL
  537.             Debug-Output "MakeServicesEntry failed for video"
  538.             goto finish_InstallOption
  539.         endif
  540.  
  541.         ;
  542.         ;
  543.         ; then disable the previous video entry
  544.         ;
  545.  
  546.         ifstr(i) $(CurrentEntry) != $(MiniportDriver)
  547.             ifstr(i) $(CurrentEntry) != VGA
  548.                 ifstr(i) $(CurrentEntry) != ""
  549.                     shell "registry.inf" ModifyServicesEntry $(CurrentEntry) $(!SERVICE_DISABLED)
  550.  
  551.                     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  552.                         Debug-Output "Couldn't find DisableServicesEntry in registry.inf"
  553.                         goto errorconfig
  554.                     endif
  555.  
  556.                     ifstr(i) $($R0) != STATUS_SUCCESSFUL
  557.                         Debug-Output "DisableServices entry failed"
  558.                     endif
  559.                 endif
  560.             endif
  561.         endif
  562.  
  563.         goto configdone
  564.  
  565. errorconfig = +
  566.         ifstr(i) $(CurrentEntry) != $(MiniportDriver)
  567.             shell "registry.inf" ModifyServicesEntry $(MiniportDriver) $(!SERVICE_DISABLED)
  568.             ifstr(i) $(CurrentEntry) != ""
  569.                 shell "registry.inf" ModifyServicesEntry $(CurrentEntry) $(!SERVICE_SYSTEM_START)
  570.             endif
  571.         endif
  572.         goto finish_InstallOption
  573.  
  574. configdone = +
  575.  
  576.     endif
  577.  
  578.     ; MTX - Adding some code to install the QuickAccess service.
  579.     StartDetachedProcess ExitCode "" "" mgashk.exe
  580.  
  581.     ; Adding some code to remove old MGA Monitor program.
  582.     set RemoveList = ^(Files-MGASetupDelete, 0)
  583.     ForListDo $(RemoveList)
  584.         set FileToCheck = #(Files-MGASetupDelete, $($), 2)
  585.         LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\"$(FileToCheck)
  586.         ifstr(i) $(STATUS) == YES
  587.             AddFileToDeleteList $(!STF_WINDOWSSYSPATH)"\"$(FileToCheck)
  588.         endif
  589.     EndForListDo
  590.  
  591.     ; MTX - End of addition
  592.  
  593.     set Status = STATUS_SUCCESSFUL
  594.  
  595. finish_InstallOption = +
  596.     ForListDo $(DrivesToFree)
  597.         LibraryProcedure STATUS,$(!LIBHANDLE), DeleteNetConnection $($) "TRUE"
  598.     EndForListDo
  599.  
  600.     Return $(Status)
  601.  
  602.  
  603. [Install-AddCopyOption]
  604.  
  605.     set STF_VITAL = ""
  606.     ;
  607.     ; Add the files to the copy list
  608.     ;
  609.     AddSectionKeyFileToCopyList   Files-DisplayMiniportDrivers   +
  610.                                   $(MiniportDriver)              +
  611.                                   $(SrcDir)                      +
  612.                                   $(!STF_WINDOWSSYSPATH)\drivers
  613.  
  614.     ForListDo $(InstalledDisplays)
  615.         AddSectionKeyFileToCopyList   Files-DisplayDLLs          +
  616.                                       $($)                       +
  617.                                       $(SrcDir)                  +
  618.                                       $(!STF_WINDOWSSYSPATH)
  619.  
  620.     EndForListDo
  621.  
  622.     ; MTX - Adding some code to install the MGA setup utilities
  623.  
  624.     set mgaSetupList = ^(Files-MGASetup, 0)
  625.     ForListDo $(mgaSetupList)
  626.         AddSectionKeyFileToCopyList   Files-MGASetup             +
  627.                                       $($)                       +
  628.                                       $(SrcDir)                  +
  629.                                       $(!STF_WINDOWSSYSPATH)
  630.  
  631.     EndForListDo
  632.  
  633.     ; MTX - Adding some code to conditionally add files
  634.  
  635.     set mgaSetupList = ^(Files-MGASetupCondit, 0)
  636.     ForListDo $(mgaSetupList)
  637.         set FileToCheck = #(Files-MGASetupCondit, $($), 2)
  638.         LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\"$(FileToCheck)
  639.         ifstr(i) $(STATUS) == NO
  640.             AddSectionKeyFileToCopyList   Files-MGASetupCondit       +
  641.                                           $($)                       +
  642.                                           $(SrcDir)                  +
  643.                                           $(!STF_WINDOWSSYSPATH)
  644.         endif
  645.     EndForListDo
  646.  
  647.     ; MTX - End of addition
  648.  
  649.     exit
  650.  
  651.  
  652. [Install-DoCopyOption]
  653.  
  654.     ;
  655.     ; Copy files in the copy list
  656.     ;
  657.     CopyFilesInCopyList
  658.     exit
  659.  
  660. ;**************************************************************************
  661. ; PROGRESS GUAGE VARIABLES
  662. ;**************************************************************************
  663.  
  664. [ProgressCopyENG]
  665.     ProCaption   = "Windows NT Setup"
  666.     ProCancel    = "Cancel"
  667.     ProCancelMsg = "Windows NT is not correcly installed.  Are you sure you want "+
  668.                    "to cancel copying files?"
  669.     ProCancelCap = "Setup Message"
  670.     ProText1     = "Copying:"
  671.     ProText2     = "To:"
  672.  
  673. [StringsENG]
  674.     String1 = "Display"
  675.     String2 = "Please enter the full path to the OEM Display "+
  676.               "driver files.  Then choose Continue."
  677.  
  678. ;-----------------------------------------------------------------------
  679. ; SOURCE MEDIA DESCRIPTIONS
  680. ; -------------------------
  681. ; The OEM should list all the diskette labels here.  The source media
  682. ; description is used during copy to prompt the user for a diskette
  683. ; if the source is diskettes.
  684. ;
  685. ; Use 1 = "Diskette 1 Label" , TAGFILE = disk1
  686. ;     2 = "Diskette 2 Label" , TAGFILE = disk2
  687. ;     ...
  688. ;-----------------------------------------------------------------------
  689.  
  690. ;--------------------------------------------------------------------
  691. ; THE SECTIONS BELOW SHOULD BE AUTOMATICALLY GENERATED BY THE EXCEL
  692. ; SPREAD SHEETS
  693. ;--------------------------------------------------------------------
  694.  
  695. [Source Media Descriptions]
  696.     1  = "MILLENNIUM WIN-NT DRV, Disk 1/1"  , TAGFILE = mgax64.tag
  697.  
  698. [Files-DisplayDLLs]
  699. mgax64   = 1,mgax64.dll   , SIZE=119360
  700.  
  701. [Files-DisplayMiniportDrivers]
  702. mgax64   = 1,mgax64.sys   , SIZE=194304
  703.  
  704. ; MTX - Additions to install the MGA setup utilities
  705.  
  706. [Files-MGASetup]
  707. suFile01 = 1,mga.mon      , SIZE=451427
  708. suFile02 = 1,mga.bin      , SIZE=64026
  709. suFile03 = 1,ddirx.dll    , SIZE=76800
  710. suFile04 = 1,mgashk.exe   , SIZE=24576
  711. suFile05 = 1,mgahk.exe    , SIZE=20480
  712. suFile06 = 1,mgaquick.exe , SIZE=41472
  713. suFile07 = 1,mgapanel.cpl , SIZE=82432
  714. suFile08 = 1,mga_eng.hlp  , SIZE=23907
  715. suFile09 = 1,mga_eng.dll  , SIZE=72704
  716. suFile0a = 1,mga_dan.hlp  , SIZE=24447
  717. suFile0b = 1,mga_dan.dll  , SIZE=72704
  718. suFile0c = 1,mga_dut.hlp  , SIZE=25180
  719. suFile0d = 1,mga_dut.dll  , SIZE=73216
  720. suFile0e = 1,mga_fin.hlp  , SIZE=25279
  721. suFile0f = 1,mga_fin.dll  , SIZE=72704
  722. suFile10 = 1,mga_nor.hlp  , SIZE=24430
  723. suFile11 = 1,mga_nor.dll  , SIZE=72704
  724. suFile12 = 1,mga_por.hlp  , SIZE=25414
  725. suFile13 = 1,mga_por.dll  , SIZE=73216
  726. suFile14 = 1,mga_swe.hlp  , SIZE=25030
  727. suFile15 = 1,mga_swe.dll  , SIZE=72704
  728.  
  729. ; MTX - Additions to conditionally add files
  730.  
  731. [Files-MGASetupCondit]
  732. ciFile1 = 1,ctl3d32.dll  , SIZE=27136
  733.  
  734. ; MTX - Additions to remove old MGA Monitor program
  735.  
  736. [Files-MGASetupDelete]
  737. rmFile1 = 1,mgaset.cpl
  738. rmFile2 = 1,mondlg.dll
  739.  
  740. ; MTX - End of addition
  741.